Básico
Para integrar la emisión de tickets en su plataforma, el primer paso es realizar una llamada a la API de menta cada vez que se emitan tickets. Esto puede ocurrir en distintos escenarios, como al momento de la compra, al enviar cortesías a usuarios finales, o en cualquier otra instancia donde se generen tickets.
La emisión de tickets puede realizarse de forma individual o grupal, por ejemplo, cuando un usuario adquiere varios tickets simultáneamente.
Para reportar la emisión de tickets, utilice el endpoint /v1/tickets. Este endpoint espera recibir un arreglo (Array) de tickets. Si necesita enviar información sobre un solo ticket, simplemente envíe un Array que contenga ese único elemento.
- cURL
- Python
- Java
- PHP
curl -X POST 'https://api.mentatickets.com/v1/tickets'
-H 'Authorization: YOUR_API_KEY'
-H 'Content-Type: application/json'
--data-raw '[
{
"ticketOptionId": "0001",
"showId": "4726",
"externalReferenceEventId": "the-lion-king-broadway",
"buyer": "buyer@emaildomain.com",
"ticketId": "111",
"ticketAccess": {
"type": "URL",
"locator": "https://storage.googleapis.com/default_mentatickets-core/Captura%20de%20pantalla%202023-03-21%20a%20la(s)%2010.46.42.png",
"status": "LOCKED"
}
}
]'
import requests
import json
url = "https://api.mentatickets.com/v1/tickets"
headers = {
"Authorization": "YOUR_API_KEY",
"Content-Type": "application/json",
}
ticketOptionId = "0001"
showId = "4726"
externalReferenceEventId = "the-lion-king-broadway"
buyer = "buyer@emaildomain.com"
ticketId = "111"
ticketAccessType = "URL"
locator = "https://storage.googleapis.com/default_mentatickets-core/Captura%20de%20pantalla%202023-03-21%20a%20la(s)%2010.46.42.png"
status = "LOCKED"
data = [
{
"ticketOptionId": ticketOptionId,
"showId": showId,
"externalReferenceEventId": externalReferenceEventId,
"buyer": buyer,
"ticketId": ticketId,
"ticketAccess": {
"type": ticketAccessType,
"locator": locator,
"status": status,
},
}
]
response = requests.post(url, headers=headers, data=json.dumps(data))
import okhttp3.*;
import java.io.IOException;
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.get("application/json; charset=utf-8");
String ticketOptionId = "0001";
String showId = "4726";
String externalReferenceEventId = "the-lion-king-broadway";
String buyer = "buyer@emaildomain.com";
String ticketId = "111";
String ticketAccessType = "URL";
String locator = "https://storage.googleapis.com/default_mentatickets-core/Captura%20de%20pantalla%202023-03-21%20a%20la(s)%2010.46.42.png";
String status = "LOCKED";
String json = String.format("""
[
{
"ticketOptionId": "%s",
"showId": "%s",
"externalReferenceEventId": "%s",
"buyer": "%s",
"ticketId": "%s",
"ticketAccess": {
"type": "%s",
"locator": "%s",
"status": "%s"
}
}
]
""", ticketOptionId, showId, externalReferenceEventId, buyer, ticketId, ticketAccessType, locator, status);
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder()
.url("https://api.mentatickets.com/v1/tickets")
.post(body)
.addHeader("Authorization", "YOUR_API_KEY")
.addHeader("Content-Type", "application/json")
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
<?php
$url = "https://api.mentatickets.com/v1/tickets";
$headers = array(
"Authorization: YOUR_API_KEY",
"Content-Type: application/json",
);
$data = array(
array(
"ticketOptionId" => "0001",
"showId" => "4726",
"externalReferenceEventId" => "the-lion-king-broadway",
"buyer" => "buyer@emaildomain.com",
"ticketId" => "111",
"ticketAccess" => array(
"type" => "URL",
"locator" => "https://storage.googleapis.com/default_mentatickets-core/Captura%20de%20pantalla%202023-03-21%20a%20la(s)%2010.46.42.png",
"status" => "LOCKED"
)
)
);
$json_data = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Respuesta JSON
{
"status": 200,
"data": [{TICKETDATA}],
"errors": null
}
¿Qué información del ticket necesita menta para funcionar?
A continuación, te mostramos los campos que conforman un ticket. Cabe destacar que todos los campos son obligatorios:
Entidad Ticket
Campo | Tipo de Dato | Descripción | Ejemplo |
---|---|---|---|
ticketOptionId | String | ID del tipo de ticket que utilizas en tu plataforma. | "0001" |
showId | String | ID del Show del Evento (si hay más de uno) que utilizas en tu plataforma. | "4726" |
externalReferenceEventId | String | ID del Evento que utilizas en tu plataforma | "the-lion-king-broadway" |
buyer | String | Correo electrónico del comprador del ticket original | "buyer@emaildomain.com" |
ticketId | String | ID del Ticket. Debe ser único para toda tu plataforma. | "111" |
ticketAccess | TicketAccess | Información sobre el localizador de acceso al ticket. | Ver tabla a continuación |
Entidad TicketAccess
Campo | Tipo de Dato | Descripción | Ejemplo |
---|---|---|---|
type | Enum (URL, OTHER ó BASE64) | Especifica el tipo de recurso para obtener el QR del Ticket | "URL" |
locator | String | URL del recurso donde se encuentra el QR Ticket | "https://platform.com/images/qr-123.png" |
Si necesitas ayuda adicional o tienes alguna pregunta sobre el proceso de actualización, no dudes en contactarnos.